package com.server.domain.process;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Map;

/**
 * 实体类代码
 *
 * lombok：使用注解的形式生成getter/setter方法
 * 使用注解的形式配置到实体类上
 * @Getter              getter方法
 * @Setter              setter方法
 * @NoArgsConstructor   无参构造
 * @AllArgsConstructor  满参构造
 * @Data                =Getter+Setter
 *
 * 使用JPA操作数据库
 *      配置实体类和表的映射关系
 *      配置字段与属性的映射关系（主键/普通属性）
 */

@Entity
@Table(name = "process_node")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProcessNode implements Serializable {
    /**
     * 节点id
     */
    @Id
    @Column
    private String id;
    /**
     * 所属WorkFlow引用
     *      Many To One
     */
    @ManyToOne
    @JoinColumn(name = "workflow_id")
    private WorkFlow workflow;
    /**
     * 节点类型
     */
    private String type;
    /**
     * 节点横坐标x
     */
    private double x;
    /**
     * 节点纵坐标
     */
    private double y;
    /**
     * 节点文本字段
     *      x:double
     *      y:double
     *      value:String
     */
    private String text;
    /**
     * 节点属性字段
     *      可扩展/可为空
     */
    private String properties;
}
